package com.probiz.estore.product.dao;

import java.util.List;

import com.probiz.estore.common.model.product.SkuOption;
import com.probiz.estore.core.dao.GenericDao;

/**
 * Dao interface for SkuOption.
 */
public interface SkuOptionDao extends GenericDao<SkuOption> {
	/**
	 * 获取产品类型的所有SkuOption选项
	 * 按ProductTypeSkuOption的sortOrder排序
	 * @return
	 */
	public List<SkuOption> findSkuOptionsByProductType(Integer productTypeId);
	
	
	/**
	 * 获取产品类型的所有激活的SkuOption选项
	 * 按ProductTypeSkuOption的sortOrder排序
	 * @return
	 */
	public List<SkuOption> findActiveSkuOptionsByProductType(Integer productTypeId);
	
	/**
     * 获取与商品类型关联的已开启快速搜索的规格个数
     * @param productTypeId 商品类型id
     * @return 个数
     */
    public Long getNumOfQuickSearchOptionsByProductTypeId(Integer productTypeId);
    /**
     * 获得与商品类型关联的已开启快速搜索的规格列表
     * @param productTypeId 商品类型id
     * @return 列表
     */
    public List<SkuOption> getQuickSearchSkuOptionsByProductTypeId(Integer productTypeId);
    
    /**
	 * 根据规格id获取目前关联的商品规格值个数
	 * @param skuOptionValueId
	 * @return
	 */
	public Long getSizeOfProductSkuOptionValue(Integer skuOptionId);
	
	 /**
     * 获取商品类型的关联规格值被货品所引用的次数
     * @param productTypeId
     * @param skuOptionId
     * @return
     */
    public Long getSizeOfProductSkuOptionValueByProductTypeAndSkuOption(Integer productTypeId,Integer skuOptionId);


  
	
}